第1章 複素数
●実数 私達が日常的に使っている数はほとんどすべて実数です。一番簡単なのが 1、 2、3、といった自然数、0 や -1 も含めると整数、1/3 のような分数も含めた有 理数、√2 などの無理数、π などの超越数、などなど、すべて実数の集合に含 まれます。 実数は、数直線上に存在する数の集合と考えることができます。 -∞ ←─┼──┼──┼──┼──┼──┼──┼─→ ∞ -1.5 -1 -0.5 0 +0.5 +1 +1.5 どんな実数でも、2 乗すると 0 または正の実数になります。2 乗すると負に なる実数は存在しません。つまり、 √-1 (-1 の平方根) に該当する値は実数の集合の中には含まれていないわけです。 ●虚数 N を整数としたとき、三角関数 cos には次のような性質があります。 cos(Nπ) = (-1)^N すなわち cos(0) = (-1)^0 = +1 cos(π) = (-1)^1 = -1 cos(2π) = (-1)^2 = +1 cos(3π) = (-1)^3 = -1 : むずかしく見えるかも知れませんが、これは要するに cos(Nπ) が原点(0 の場 所)を中心として半径が 1 の円(これを単位円と呼びます)の円周上を左回り にまわりながら +1 と -1 をいったりきたりしていることを意味しています。 ←┼← │ / │ \ ┼ │ cos(π),cos(3π),…↓ │ ↑cos(0),cos(2π),… -∞ ←─┼──●──┼──┼──┼──●──┼─→ ∞ -1.5 ↓-1 -0.5 │0 +0.5 ↑+1 +1.5 │ ┼ \ │ / │ →┼→ さて、先ほどは cos(Nπ) = (-1)^N の N を整数としましたが、N に 1/2 を入れたらどうなるでしょうか。 cos(π/2) = (-1)^(1/2) ? これは明らかに成り立っていません。右辺は -1 の 1/2 乗、つまり √-1 です。 それが実数の 0 である左辺とイコールになるはずがありません。そこで、辻褄 を合わせるために、次のように書きます。 cos(π/2) + i*sin(π/2) = (-1)^(1/2) sin(π/2) = 1 ですから、 i = √-1 ということになります。このように、辻褄を合わせるために持ち込まれた i を、 虚数単位と呼びます。Imaginary の頭文字の i です(電気系の教科書を見ると、 電流を表す i と区別するために虚数単位として j が使われている場合がありま す)。 虚数単位 i を実数倍したもの(0 倍を除く)が虚数です。虚数の定数は、2i や 0.5i のように後ろに i を付けて書きます。 ●複素平面 虚数 i の存在は、先ほどの図に表すと簡単に理解できます。+1 から左回りに π/2 つまり 90 度だけ回転したところに i があるのです。 ↑ │ ←●← │+i / │ \ ┼+0.5i │ ↓ │ ↑ -∞ ←─┼──●──┼──┼──┼──●──┼─→ ∞ -1.5 ↓-1 -0.5 │0 +0.5 ↑+1 +1.5 │ ┼-0.5i \ │ / │ →●→ │-i ↓ このように、水平方向に実数軸、垂直方向に虚数軸を割り当てた平面を複素平面 と呼びます。XY 平面ではなくて複素平面であることを明示するために、実数軸 の + 方向には Real の頭 2 文字の Re、虚数軸の + 方向には Imaginary の頭 2 文字の Im を書いておきます。 Im ↑ │ ┼+i │ │ ┼+0.5i │ │ ──┼──┼──┼──┼──┼──┼──┼─→Re -1.5 -1 -0.5 │0 +0.5 +1 +1.5 │ ┼-0.5i │ │ ┼-i │ │ ●複素数(Complex number) 複素平面上の任意の点の座標は、実数と虚数のペアで表されます。例えば、 1+i や -1/√2+i/√2 などです。これを 1 つの値とみなした数のことを、要素 が複数ある数という意味で複素数と呼びます。実数が 1 次元的な値なのに対し て、複素数は 2 次元的な値というわけです。 Im ↑ │ ┼+i ●1+i │ -1/√2+i/√2● │ ┼ │ │ ──┼──┼──┼──┼──┼──┼──┼─→Re -1 │0 +1 │ ┼ │ │ ┼-i │ │ 複素数の中の実数の部分を実数部(または実部)、虚数の部分から i を除い たものを虚数部(または虚部)と呼びます。例えば、1+2i の実数部は 1、虚数 部は 2 です。 複素数 c の実数部を Re(c)、虚数部(i を除いたもの)を Im(c) と書きます。 ●複素数の絶対値 複素数 c を複素平面上に表示したときの原点 0 からの距離を c の絶対値と 呼び、|c| や abs(c) などと書きます。 |c| = √{Re(c)^2 + Im(c)^2} です。この複素数の絶対値の定義は、虚数部を 0 にしたとき実数の絶対値の定 義と等しくなります。 ●共役複素数 複素数 c に対して、その虚数部の符号だけ反転したものを c の共役複素数と 呼び、‾c や conj(c) などと書きます。すなわち、 Re(‾c) = Re(c) Im(‾c) = -Im(c) です。 複素数 c とその共役複素数 ‾c の積は必ず実数になり、その値は c の絶対値 の 2 乗になります。 c*‾c = (Re(c) + i*Im(c)) * (Re(c) - i*Im(c)) = Re(c)^2 + Im(c)^2 = |c|^2 ●オイラーの定理 exp(x) を自然対数の底 e の x 乗、i を虚数単位、t を任意の実数としたと き、次の式が成り立ちます。これをオイラーの定理と呼びます。 exp(i*t) = cos(t) + i*sin(t) この式の証明は、exp(x) を無限級数展開して x=i*t を代入して実数部と虚数 部に分けるとそれぞれ cos(x) と sin(x) の無限級数展開になっているというだ けです。 exp(i*t) は t=0〜2π の範囲で複素平面上の単位円の円周を表現しているこ とになります。 ●極座標表現 複素数の極座標表現とは、原点から見た角度(偏角)と距離(絶対値)によっ て複素数を表現したものです。複素数 c の絶対値を abs(c)、偏角を arg(c) と すると、 c = abs(c) * exp(i*arg(c)) と書くことができます。 例えば、-2 は偏角が π で絶対値が 2 なので、 -2 = 2 * exp(i*π) と表現できます。また、0.5iは偏角が π/2 で絶対値が 0.5 なので、 0.5i = 0.5 * exp(i*π/2) です。1/√2 + i/√2 ならば、偏角が π/4 で絶対値が 1 なので、 1/√2 + i/√2 = 1 * exp(i*π/4) となります。 なお、複素数の偏角は atan2()(2 引数の逆正接関数)を使って求めることが できます。 ●複素数の加減算 複素数の加減算は簡単です。 x = Re(x) + i*Im(x) y = Re(y) + i*Im(y) とすると、 x+y = {Re(x) + i*Im(x)} + {Re(y) + i*Im(y)} = {Re(x) + Re(y)} + i*{Im(x) + Im(y)} x-y = {Re(x) + i*Im(x)} - {Re(y) + i*Im(y)} = {Re(x) - Re(y)} + i*{Im(x) - Im(y)} ですから、 Re(x+y) = Re(x) + Re(y) Im(x+y) = Im(x) + Im(y) Re(x-y) = Re(x) - Re(y) Im(x-y) = Im(x) - Im(y) です。つまり、複素数の加減算は、実部と虚部をそれぞれ別々に加減算すればよ いということです。 これを複素平面上で表すと、2 次元ベクトルの足し算のようになります。 Im ↑ │ ┼+i ●0.6+1i │ │●0.1+0.6i ┼ │ ●0.5+0.4i │ ──┼──┼──┼──┼──┼──┼──┼─→Re -1 │0 +1 │ ┼ │ │ ┼-i │ │ ●複素数の乗算 複素数 x、y の積を求めてみましょう。 x = Re(x) + i*Im(x) y = Re(y) + i*Im(y) ですから、 x*y = {Re(x) + i*Im(x)} * {Re(y) + i*Im(y)} = Re(x)*Re(y) + i*Re(x)*Im(y) + i*Im(x)*Re(y) + i^2*Im(x)*Im(y) ここで i^2 = -1 なので、 x*y = Re(x)*Re(y) + i*Re(x)*Im(y) + i*Im(x)*Re(y) - Im(x)*Im(y) = {Re(x)*Re(y) - Im(x)*Im(y)} + i*{Re(x)*Im(y) + Im(x)*Re(y)} すなわち、 Re(x*y) = Re(x)*Re(y) - Im(x)*Im(y) Im(x*y) = Re(x)*Im(y) + Im(x)*Re(y) となります。 さて、上では単純に実数部と虚数部にわけて乗算を行いましたが、これを極座 標表現で行うとどうなるでしょうか。 x = abs(x) * exp(i*arg(x)) y = abs(y) * exp(i*arg(y)) より、 x*y = {abs(x)*exp(i*arg(x))} * {abs(y)*exp(i*arg(y))} = {abs(x)*abs(y)} * {exp(i*arg(x))*exp(i*arg(y))} = {abs(x)*abs(y)} * exp(i*(arg(x)+arg(y))) すなわち、 abs(x*y) = abs(x)*abs(y) arg(x*y) = arg(x)+arg(y) です。これの意味するところは、「複素数同士の乗算は、絶対値が積になって、 偏角が和になる」ということです。この性質は非常に重要です。察しのよい人な ら、 Re(x*y) = Re(x)*Re(y) - Im(x)*Im(y) Im(x*y) = Re(x)*Im(y) + Im(x)*Re(y) という関係を見た時点で「cos と sin の加法定理に似ている」と思ったかも知 れませんが、実はその通りなのです。 ●複素数の除算 複素数の除算を実数部と虚数部に分けて展開すると、次のようになります。こ こでは、除数の共役複素数を分子と分母の両方に掛けて分母を実数化するという テクニックを使います。 x = Re(x) + i*Im(x) y = Re(y) + i*Im(y) x/y = {Re(x) + i*Im(x)} / {Re(y) + i*Im(y)} = [{Re(x) + i*Im(x)}*{Re(y) - i*Im(y)}] / [{Re(y) + i*Im(y)}*{Re(y) - i*Im(y)}] = {Re(x)*Re(y) - i*Re(x)*Im(y) + i*Im(x)*Re(y) - i^2*Im(x)*Im(y)} / {Re(y)^2 - i*Re(y)*Im(y) + i*Im(y)*Re(y) - i^2*Im(y)^2} = [{Re(x)*Re(y) + Im(x)*Im(y)} + i*{Im(x)*Re(y) - Re(x)*Im(y)}] / {Re(y)^2 + Im(y)^2} = [{Re(x)*Re(y) + Im(x)*Im(y)} / {Re(y)^2 + Im(y)^2}] + i*[{Im(x)*Re(y) - Re(x)*Im(y)} / {Re(y)^2 + Im(y)^2}] Re(x/y) = {Re(x)*Re(y) + Im(x)*Im(y)} / {Re(y)^2 + Im(y)^2} Im(x/y) = {Im(x)*Re(y) - Re(x)*Im(y)} / {Re(y)^2 + Im(y)^2} 極座標の場合は次のようになります。 x = abs(x) * exp(i*arg(x)) y = abs(y) * exp(i*arg(y)) x/y = {abs(x)*exp(i*arg(x))} / {abs(y)*exp(i*arg(y))} = {abs(x)/abs(y)} * {exp(i*arg(x))/exp(i*arg(y))} = {abs(x)/abs(y)} * exp(i*(arg(x)-arg(y))) abs(x/y) = abs(x)/abs(y) arg(x/y) = arg(x)-arg(y) つまり、「複素数同士の除算は、絶対値が商になって、偏角が差になる」です。 勿論、0 で割ることはできません。 ● 1 の N 乗根 複素数同士の乗算の原理が分かっていれば、1 の N 乗根(N 乗すると 1 にな る数)が複素平面上でどこにあるか見当がつきます。1 の N 乗根は、絶対値が 1 で、偏角は n*2π/N(n=0,1,2)のところ、つまり exp(i*n*2π/N) にあるの です。これは「複素平面上の単位円に内接し、1 を頂点の 1 つとする正 N 角形 の各頂点の座標」にほかなりません。 1 の 2 乗根(平方根) Im ↑ │ ┼+i │ / │ \ ┼ │ │ ──┼──●──┼──┼──┼──●──┼─→Re -1 │0 +1 │ ┼ \ │ / │ ┼-i │ │ 1 の 3 乗根(立方根) Im ↑ │ -1/2+√3/2 ┼+i ● │ / │ \ ┼ │ │ ──┼──┼──┼──┼──┼──●──┼─→Re -1 │0 +1 │ ┼ \ │ / ● │ -1/2-√3/2 ┼-i │ │ 1 の 4 乗根 Im ↑ │ ●+i │ / │ \ ┼ │ │ ──┼──●──┼──┼──┼──●──┼─→Re -1 │0 +1 │ ┼ \ │ / │ ●-i │ │ なお、exp(i*2π/N) のことを回転子と呼ぶことがあります。 (EOF)